// 1814 [单调性]代码缩进  http://oj.rnd.huawei.com/problems/1814/details
// 根据单调性，后一次缩进数量减去前一次需要缩进的数量，
// 如果小于0，则这两个缩进可以一起处理，只需记录最大值，
// 如果后一次多于前一次，则需要在前一次的基础上增加缩进次数。
// 已经跟随第i行代码缩进了steps[i - 1]，只需要再缩进diff, 同样适用steps[i-1]==0
// 输入5
// 1 2 3 2 1
// 输出
// 3
// ------
// 11
// 111
// 11
// 1
// 11
// 111
//已经跟随第i行代码完成了全部缩进

#include <iostream>
#include <vector>

using namespace std;
int GetMinStep(const vector<int> &steps) {
  int count = steps[0];
  for (size_t i = 1; i < steps.size(); i++) {
    int diff = steps[i] - steps[i - 1];
    if (diff > 0) {
      count += diff;
    }
  }
  return count;
}
